Java Technologies উদাহরণ সহ Eureka Server এবং Client Integration গাইড ও নোট

330

Spring Cloud Eureka একটি সার্ভিস রেজিস্ট্রি এবং সার্ভিস ডিসকভারি সিস্টেম যা মাইক্রোসার্ভিস আর্কিটেকচারে ব্যবহৃত হয়। এটি মাইক্রোসার্ভিসগুলোর মধ্যে যোগাযোগ সহজতর করে, যাতে এক সার্ভিস অন্য সার্ভিসটি খুঁজে পায় এবং তাদের সাথে যোগাযোগ করতে পারে। Eureka Server এবং Eureka Client এর মাধ্যমে এই সিস্টেম কাজ করে।

Eureka Server এবং Client এর ইন্টিগ্রেশন প্রক্রিয়া

Step 1: Eureka Server সেটআপ

Eureka Server হলো সার্ভিস রেজিস্ট্রি যা সকল সার্ভিসের অবস্থান সংরক্ষণ এবং পরিচালনা করে। ক্লায়েন্ট সার্ভিসগুলি Eureka Server-এ রেজিস্টার করে, এবং অন্যান্য সার্ভিসের সাথে যোগাযোগ করতে পারে।

Eureka Server Setup
  1. Maven Dependencies: pom.xml ফাইলে Eureka Server এর জন্য প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করুন:

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
  2. Application Class (Eureka Server)

    Spring Boot অ্যাপ্লিকেশন ক্লাসে @EnableEurekaServer অ্যানোটেশন ব্যবহার করে Eureka Server সক্রিয় করুন:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaServerApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    }
    
  3. application.properties কনফিগারেশন (Eureka Server)

    Eureka Server কনফিগার করতে application.properties বা application.yml ফাইল ব্যবহার করুন:

    spring.application.name=eureka-server
    server.port=8761
    eureka.client.register-with-eureka=false
    eureka.client.fetch-registry=false
    

    এখানে, register-with-eureka=false এবং fetch-registry=false ব্যবহার করা হয়েছে কারণ এটি সার্ভিস রেজিস্ট্রি হিসেবে কাজ করছে এবং নিজেকে রেজিস্টার করতে হবে না।

  4. Run Eureka Server:

    Spring Boot অ্যাপ্লিকেশন চালানোর মাধ্যমে Eureka Server শুরু হবে। এরপরে আপনি http://localhost:8761 এ Eureka Server UI দেখতে পারবেন, যেখানে সার্ভিসের তালিকা দেখতে পারবেন।


Step 2: Eureka Client সেটআপ

Eureka Client হলো সেই মাইক্রোসার্ভিস যা Eureka Server-এ রেজিস্টার হয় এবং সার্ভিস ডিসকভারি সিস্টেমের মাধ্যমে একে অপরের সাথে যোগাযোগ করতে পারে।

Eureka Client Setup
  1. Maven Dependencies: pom.xml ফাইলে Eureka Client এর জন্য প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করুন:

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
  2. Application Class (Eureka Client)

    Spring Boot অ্যাপ্লিকেশন ক্লাসে @EnableEurekaClient অ্যানোটেশন ব্যবহার করে Eureka Client সক্রিয় করুন:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    
    @SpringBootApplication
    @EnableEurekaClient
    public class MyServiceApplication {
        public static void main(String[] args) {
            SpringApplication.run(MyServiceApplication.class, args);
        }
    }
    
  3. application.properties কনফিগারেশন (Eureka Client)

    Eureka Client কনফিগার করতে application.properties ফাইলে নিম্নলিখিত কনফিগারেশন করুন:

    spring.application.name=my-service
    eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
    

    এখানে, spring.application.name=my-service দ্বারা ক্লায়েন্টের অ্যাপ্লিকেশন নাম নির্ধারণ করা হয় এবং eureka.client.service-url.defaultZone Eureka Server এর URL দেয়া হয়েছে।

  4. Run Eureka Client:

    Spring Boot অ্যাপ্লিকেশন চালানোর মাধ্যমে Eureka Client শুরু হবে। Eureka Server UI-তে আপনি এই সার্ভিসের নাম (যেমন my-service) দেখতে পাবেন।


Step 3: Eureka Server এবং Client এর ইন্টিগ্রেশন পরীক্ষা করা

  1. Eureka Server চালু করুন: EurekaServerApplication ক্লাস চালু করুন।
  2. Eureka Client চালু করুন: MyServiceApplication ক্লাস চালু করুন।
  3. Eureka UI তে সার্ভিস দেখুন: http://localhost:8761 এ যান, এবং আপনি দেখতে পাবেন যে Eureka Client সার্ভিসটি সফলভাবে রেজিস্টার হয়েছে।

Step 4: Eureka Client থেকে সার্ভিস কল করা (Load Balancing)

Eureka Client সার্ভিস রেজিস্ট্রি থেকে উপলব্ধ সার্ভিসগুলি ডিসকভার করতে পারে। এটি লোড ব্যালেন্সিংয়ের মাধ্যমে বিভিন্ন সার্ভিসের মধ্যে অনুরোধ ভাগ করে দেয়।

  1. RestTemplate ব্যবহার করে সার্ভিস কল:

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    @RestController
    public class MyServiceController {
    
        @Autowired
        private RestTemplate restTemplate;
    
        @GetMapping("/callService")
        public String callOtherService() {
            return restTemplate.getForObject("http://my-service/other-endpoint", String.class);
        }
    }
    
  2. RestTemplate Bean তৈরি করুন:

    Eureka Client-এ লোড ব্যালেন্সিং সক্রিয় করতে, @LoadBalanced অ্যানোটেশন ব্যবহার করুন:

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.client.RestTemplate;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    
    @Configuration
    public class MyServiceConfig {
    
        @Bean
        @LoadBalanced
        public RestTemplate restTemplate() {
            return new RestTemplate();
        }
    }
    

    এখানে, @LoadBalanced দ্বারা Eureka সার্ভিসের মধ্যে লোড ব্যালেন্সিং সক্রিয় করা হয়েছে। ক্লায়েন্ট সার্ভিসটি যখন my-service নামের সার্ভিসে কল করবে, Eureka সার্ভিস রেজিস্ট্রির মাধ্যমে সঠিক ইনস্ট্যান্সে কলটি রাউট হবে।


উপসংহার

Spring Cloud Eureka Server এবং Client ইন্টিগ্রেশন একটি শক্তিশালী সমাধান তৈরি করে যা মাইক্রোসার্ভিস আর্কিটেকচারে সার্ভিস ডিসকভারি এবং রেজিস্ট্রেশনের জন্য ব্যবহার করা হয়। এটি সার্ভিসগুলির মধ্যে ডায়নামিক যোগাযোগ এবং লোড ব্যালেন্সিং সহজ করে তোলে। Eureka Server সার্ভিস রেজিস্ট্রি এবং ডিসকভারি সরবরাহ করে এবং Eureka Client সহজভাবে সার্ভিসগুলো খুঁজে পায় এবং তাদের সাথে যোগাযোগ করতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...